package com.mxcyk.serviceLogic;
import java.io.*;
/**
 * 功能：获得指定目录下的所有文件
 * @author Administrator
 *使用方法:ListFile(String file)传入文件目录
 *String[] getStrRetList() 返回该目录下的全部文件字符串数组
 *public String[]getStrFilePathList()返回该目录下的全部文件的绝对路径字符串数组
 */
final public class ListFile {
	
	String Path;
	//获得Path下的文件列表（不带路径的文件列表
	public String[] getStrRetList() {
		return list("",Path);
	}
	public String[]getStrFilePathList(){
		return list(Path+"\\",Path);
	}

	public ListFile(String Path){
		this.Path=Path;
	}
	
	
	
  //list是一个递归方法，列出每个目录下的文件名
	public static  String[] list(String path, String file) {
		String fullname = File.separator + file;
		// 当前目录
		File current = new File(fullname);
		if (!current.exists()) {
			System.out.println(file + " not exists.");
			//如果没有此目录则返回空
			return null;
		}

		// 获取当前目录下文件和子目录列表
		String[] sons = current.list();
		int[] index = new int[sons.length];
		int j = 0;
		for (int i = 0; i < sons.length; i++) {
			File f = new File(fullname + File.separator + sons[i]);
			if (f.isDirectory()) {// 如果是子目录成员
				// 递归调用，进入子目录
				// list(fullname, sons[i]);
			} else {
				//System.out.println(sons[i]);
				index[j++] = i;
			}
		}
		String[] RetList = new String[j];
		for (int i = 0; i < j; i++) {
			RetList[i] =path+ sons[index[i]];
		}
		return RetList;
		// System.out.println("总个数："+sons.length);
		// System.out.println("有用个数"+(j-1));
	}

  public static void main(String[] args) {
		String[] s;
		s = list("", "H:\\JAVA\\workspace\\MimiBox\\常用应用");
		for (int i = 0; i < s.length; i++) {
			System.out.println(s[i]);
		}

	}
} 
